package fr.skolian.view.tools.ui
{
	import flash.desktop.Clipboard;
	import flash.desktop.ClipboardFormats;
	import flash.desktop.NativeApplication;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.NativeWindow;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	
	import fr.skolian.core.command.CommandEvent;
	import fr.skolian.utils.capture.command.GetCapture;
	import fr.skolian.utils.log.Log;
	import fr.skolian.view.capture.Capture;
	
	import mx.managers.DragManager;
	
	import org.osflash.signals.natives.NativeSignal;
	
	
/*Skolian - Content management system for primary school - Copyright (c) 2011 - Olivier Gianotti - This file is part of Skolian. Skolian is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Skolian is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Skolian.  If not, see <http://www.gnu.org/licenses/>.
contact : ogianotti@gmail.com 

Skolian - Application de gestion de contenus pédagogiques en école primaire. Copyright (C) 2011 - Olivier Gianotti - Ce fichier est une partie de Skolian. Skolian est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier au titre des clauses de la Licence Publique Générale GNU, telle que publiée par la Free Software Foundation ; soit la version 2 de la Licence, ou (à votre discrétion) une version ultérieure quelconque. Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même une garantie implicite de COMMERCIABILITE ou DE CONFORMITE A UNE UTILISATION PARTICULIERE. Voir la Licence Publique Générale GNU pour plus de détails. Vous devriez avoir reçu un exemplaire de la Licence Publique Générale GNU avec ce programme ; si ce n'est pas le cas, consultez <http://www.gnu.org/licenses/>.
contact : ogianotti@gmail.com 
*/

public class ScreenShotButton extends Sprite
	{
		private var _click:NativeSignal;
		private var _window:NativeWindow;
		private var _bmp:Sprite;
		
		[Embed(source="assets/controls/capture.png")]
		private var picto:Class;
		
		public function ScreenShotButton()
		{
			super();
			build();
		}
		
		private function build():void{
			var bmp:Bitmap = new picto();
			bmp.x = -bmp.width>>1;
			bmp.y = -bmp.height>>1;
			addChild(bmp);
			_click = new NativeSignal(this,MouseEvent.CLICK,MouseEvent);
			_click.add(onClick);
		}
		
		private function onClick(event:MouseEvent):void{
			_window = NativeApplication.nativeApplication.activeWindow;
			if(_window)_window.visible = false;
			var cmd:GetCapture = new GetCapture(null,false);
			cmd.addEventListener(CommandEvent.COMPLETE,onScreenShotComplete);
			cmd.execute();
		}
		
		private function onScreenShotComplete(event:CommandEvent):void{
			//
			if(_window)_window.visible = true;
			_window = null;
			Log.debug("complete capture command");
			var bmp:Bitmap;
			var bmpData:BitmapData = Clipboard.generalClipboard.getData(ClipboardFormats.BITMAP_FORMAT,"originalPreferred") as BitmapData;
			var capture:Capture = new Capture();
			capture.title = "Capture";
			capture.open(true);
			capture.setImage(bmpData);
		}
		
	}
}